package cn.iocoder.yudao.module.pay.bill.convert;

import cn.iocoder.yudao.framework.business.basic.convert.BigDecimalConvert;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.api.pay.bill.dto.PayBillPageDTO;
import cn.iocoder.yudao.module.api.pay.bill.dto.PayBillRespDTO;
import cn.iocoder.yudao.module.pay.bill.dal.dataobject.PayBillDO;
import cn.iocoder.yudao.module.pay.bill.vo.*;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 账单 Convert
 *
 * @author yshop
 * @author 山野羡民
 */
@Mapper(uses = {BigDecimalConvert.class})
public interface PayBillConvert {

    PayBillConvert INSTANCE = Mappers.getMapper(PayBillConvert.class);

    PayBillDO convert(PayBillCreateReqVO bean);

    PayBillDO convert(PayBillUpdateReqVO bean);

    PayBillRespVO convert(PayBillDO bean);

    List<PayBillRespVO> convertList(List<PayBillDO> list);

    List<AppPayBillRespVO> convertList2(List<PayBillDO> list);

    PageResult<PayBillRespVO> convertPage(PageResult<PayBillDO> page);

    PageResult<AppPayBillRespVO> convertPage2(PageResult<PayBillDO> page);

    AppPayBillPageReqVO convert(PayBillPageDTO bean);

    PageResult<PayBillRespDTO> convertPage3(PageResult<AppPayBillRespVO> page);

}
